package com.school.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.school.domain.dto.order.OrderAddDTO;
import com.school.domain.dto.order.SelectOrderDTO;
import com.school.domain.dto.order.UpdateOrderDTO;
import com.school.domain.po.Order;
import com.school.domain.vo.PageVO;
import com.school.domain.vo.order.LargeScreenShowVO;
import com.school.domain.vo.order.OrderDetailsVO;

import java.util.List;

/**
 * <p>
 * 订单主表 服务类
 * </p>
 *
 * @author Forever
 * @since 2025-07-05
 */
public interface OrderService extends IService<Order> {

    /**
     * 查询订单
     *
     * @param selectOrderDTO 查询参数
     * @return PageVO<SelectOrderVO>分页结果
     */
    PageVO<Order> queryOrder(SelectOrderDTO selectOrderDTO);

    /**
     * 修改订单
     *
     * @param updateOrderDTO 修改参数
     * @return String
     */
    String updateOrder(UpdateOrderDTO updateOrderDTO);

    /**
     * 查询订单明细
     *
     * @param orderId 订单编号
     * @return List<OrderDetailsVO>
     */

    List<OrderDetailsVO> getOrderDetails(Long orderId);

    /**
     * 新增订单
     *
     * @param orderAddDTO 新增参数
     * @return String
     */
    String saveAddDTO(OrderAddDTO orderAddDTO);

    /**
     * 删除订单
     *
     * @param orderId 删除的订单编号
     * @return String
     */
    String deleteOrder(Long orderId);

    /**
     * 查询大屏数据
     *
     * @param yearMonth 年月
     * @return LargeScreenShowVO
     */
    LargeScreenShowVO queryLargeScreenData(String yearMonth);
}
